/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package asfabdesk.dominio;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;

/**
 *
 * @author Marco Aurélio
 */
@Entity
@Table(name = "DOCUMENTOS")
public class Documento implements Serializable {

    @Id
    @GeneratedValue
    private Long id;
    private int numero;
    private String titulo;
    private String origem;
    private String destino;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Calendar dataDocumento;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Calendar dataArquivamento;
    private String localArmazenamento;
    private String recebidoPor;
    private String entreguePor;
    private String obs;
    @OneToMany
    @JoinColumn(name = "Tag", referencedColumnName = "id")
    private List<Tag> tag = new ArrayList();
    @ManyToOne
    @JoinColumn(name = "TIPO_DOCUMENTO", referencedColumnName = "id")
    private TipoDocumento tipoDocumento;

    public Documento() {
    }

    public Documento(int numero, String titulo, String origem, String destino, Calendar dataDocumento, Calendar dataArquivamento, String localArmazenamento, String recebidoPor, String entreguePor, String obs, TipoDocumento tipoDocumento) {
        this.numero = numero;
        this.titulo = titulo;
        this.origem = origem;
        this.destino = destino;
        this.dataDocumento = dataDocumento;
        this.dataArquivamento = dataArquivamento;
        this.localArmazenamento = localArmazenamento;
        this.recebidoPor = recebidoPor;
        this.entreguePor = entreguePor;
        this.obs = obs;
        this.tipoDocumento = tipoDocumento;
    }

    public Calendar getDataArquivamento() {
        return dataArquivamento;
    }

    public void setDataArquivamento(Calendar dataArquivamento) {
        this.dataArquivamento = dataArquivamento;
    }

    public Calendar getDataDocumento() {
        return dataDocumento;
    }

    public void setDataDocumento(Calendar dataDocumento) {
        this.dataDocumento = dataDocumento;
    }

    public String getDestino() {
        return destino;
    }

    public void setDestino(String destino) {
        this.destino = destino;
    }

    public String getEntreguePor() {
        return entreguePor;
    }

    public void setEntreguePor(String entreguePor) {
        this.entreguePor = entreguePor;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getLocalArmazenamento() {
        return localArmazenamento;
    }

    public void setLocalArmazenamento(String localArmazenamento) {
        this.localArmazenamento = localArmazenamento;
    }

    public int getNumero() {
        return numero;
    }

    public void setNumero(int numero) {
        this.numero = numero;
    }

    public String getObs() {
        return obs;
    }

    public void setObs(String obs) {
        this.obs = obs;
    }

    public String getOrigem() {
        return origem;
    }

    public void setOrigem(String origem) {
        this.origem = origem;
    }

    public String getRecebidoPor() {
        return recebidoPor;
    }

    public void setRecebidoPor(String recebidoPor) {
        this.recebidoPor = recebidoPor;
    }

    public List<Tag> getTag() {
        return tag;
    }

    public void setTag(List<Tag> tag) {
        this.tag = tag;
    }

    public TipoDocumento getTipoDocumento() {
        return tipoDocumento;
    }

    public void setTipoDocumento(TipoDocumento tipoDocumento) {
        this.tipoDocumento = tipoDocumento;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }
}
